package com.spzx.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.spzx.product.api.domain.Product;
import com.spzx.product.api.domain.ProductSku;
import com.spzx.product.api.domain.SkuQuery;
import com.spzx.product.api.domain.vo.SkuPriceVo;
import com.spzx.product.api.domain.vo.SkuStockVo;
import com.spzx.product.api.domain.ProductDetails;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品 服务类
 * </p>
 *
 * @author atguigu
 * @since 2024-10-26
 */
public interface ProductService extends IService<Product> {

    List<Product> getPageList(Product product);

    Product getProductById(Long id);

    int saveProduct(Product product);

    void updateProductById(Product product);

    void deleteProductById(List<Long> ids);

    void updateAuditStatus(Long id, Integer auditStatus);

    void updateStatus(Long id, Integer status);

    List<ProductSku> getTopProductSku();

    List<ProductSku> selectProductSkuList(SkuQuery skuQuery);

    SkuPriceVo getSkuPriceVoBySkuId(Long skuId);

    ProductDetails getProductDetails(Long id);

    Map<String, Long> getSkuSpecValue(Long id);

    SkuStockVo getSkuStock(Long skuId);

    Product getProductInfoById(Long id);

    ProductSku getProductSkuById(Long skuId);
}
